#ifndef _TIPOH
#define _TIPOH

#include <string>

using namespace std;

class tipo{
public:

virtual string nombre()=0;

};

class tipoEntero: public tipo{
public:

string nombre() {return string("int");}

};

class tipoChar: public tipo{
public:

string nombre(){return string("char");}

};

class tipoFloat: public tipo {

public 

string nombre() {return string("float");}

}


class tipoError: public tipo{

private:
string msg;

public:

tipoError(string m=""):msg(m){}

string nombre(){return string("error");}

string mensaje(){return msg;}

tipoError& operator= (tipoError& te)
{ 
  msg=te.mensaje();
  return *this;
}

};

